package com.cloudbroker.bcs.platform.ltb.bizapi.t2service.social;

import com.cloudbroker.bcs.platform.ltb.bizapi.constants.IFSFunctionIds;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.admin.back.CommentQueryResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.comment.back.CommentSaveBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.comment.back.CommentSearchResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.comment.back.CommentUpvoteResult;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.comment.vo.*;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

/**
 * Created by zhaosh19213 on 2016/7/17.
 */
@ServiceModule
public interface CommentT2BizService {
    /**
     * 提交评论
     * @param form
     * @return CommentSaveBack
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_SAVE_COMMENT, desc = "保存评论")
    public CommentSaveBack funcSaveComment(@ServiceParam("param") CommentAddForm form);


    /**
     * 评论回复(投顾)
     * @param form
     * @return CommentSaveBack
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_REPLY_COMMENT, desc = "评论回复(投顾)")
    public CommentSaveBack funcReplyComment(@ServiceParam("param") CommentReplyForm form);


    /**
     * 评论修改
     * @param form
     * @return viewpointSaveResult
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_UPDATE_COMMENT, desc = "评论修改")
    public CommentSaveBack funcUpdateComment(@ServiceParam("param") CommentUpdateForm form);

    /**
     * 评论屏蔽
     * @param form
     * @return CommentSaveBack
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_CLOSE_COMMENT, desc = "评论屏蔽")
    public CommentSaveBack funcCloseComment(@ServiceParam("param") CommentStatusForm form);

    /**
     * 评论置顶
     * @param form
     * @return CommentSaveBack
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_TOP_COMMENT, desc = "评论置顶")
    public CommentSaveBack fucTopComment(@ServiceParam("param") CommentTopForm form);

    /**
     * 评论查询，根据comment_target_id
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_COMMENT_QRY, desc = "评论查询")
    public CommentQueryResult fucQueryCommentByTarget(@ServiceParam("param") CommentTargetForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_COMMENT_SEARCH, desc = "评论搜索")
    public CommentSearchResult funcSearchComment(@ServiceParam("param") CommentSearchForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_COMMENT_UPVOTE, desc = "评论点赞")
    public CommentUpvoteResult funcUpvoteComment(@ServiceParam("param") CommentUpvoteForm form);
}
